class Solution {
public:
    int lastStoneWeight(vector<int>& stones)
    {
        priority_queue<int> q1;
        for (auto x : stones)
        {
            q1.push(x);
        }
        while (q1.size() > 1)
        {
            int first = q1.top();
            q1.pop();
            int second = q1.top();
            q1.pop();
            if (first == second) continue;
            else if (first > second)
            {
                first -= second;
                q1.push(first);
            }
        }
        if (q1.size()) return q1.top();
        return 0;
    }
};